package com.github.niefy.modules.third.dto.in;

import com.github.niefy.common.utils.Json;
import lombok.Builder;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 查询学生学业进展信息
 * */
@Data
@Builder
public class ThirdSpmIn_001 {

    private List<spm> spmlist;

    @Data
    public class spm {
        /**
         * 学年
         */
        private String academicyearno;
        /**
         * 学年名
         */
        private String academicyearname;
        /**
         * 学期
         */
        private String termno;
        /**
         * 学期名
         */
        private String termname;
        /**
         * 学号
         */
        private String studentno;
        /**
         * 姓名
         */
        private String studentname;
        /**
         * 年级
         */
        private String gradeno;
        /**
         * 院(系)/部代码
         */
        private String departmentno;
        /**
         * 院(系)/部名称
         */
        private String departmentname;
        /**
         * 专业代码
         */
        private String specialityno;
        /**
         * 专业名称
         */
        private String specialityname;
        /**
         * 班级代码
         */
        private String classno;
        /**
         * 班级名称
         */
        private String classname;
        /**
         * 培养层次代码
         */
        private String levelno;
        /**
         * 培养层次
         */
        private String levelname;
        /**
         * 已修读课程数
         */
        private String coursenum;
        /**
         * 已修课程平均分
         */
        private String scoreavg;
        /**
         * 已修不及格课程
         */
        private String scorefailnum;
        /**
         * 已修必修学分总计
         */
        private String crdtreqed;
        /**
         * 已修必修学分(必修课)
         */
        private String crdtreqedcour;
        /**
         * 已修限选学分
         */
        private String crdtlmtd;
        /**
         * 已修任选学分
         */
        private String crdtoptl;
        /**
         * 已修毕设学分
         */
        private String crdtreqedprct;
        /**
         * 已修总学分
         */
        private String crdtobtn;
        /**
         * "平均学分绩点
         * 学分绩点"
         */
        private String crdtgpa;
        /**
         * 已修必修平均学分绩点
         */
        private String crdtgpareq;
        /**
         * 绩点达到2课程门数
         */
        private String gpagt2coursenum;
        /**
         * 绩点未达到2课程门数
         */
        private String gpalt2coursenum;
        /**
         * 平均学分绩点上升趋势
         */
        private String gpatrendflag;
        /**
         * 平均学分绩点高于专业平均标识
         */
        private String gpagtspclflag;
        /**
         * 平均学分绩点班级排名
         */
        private String gpaclarank;
        /**
         * 班级人数
         */
        private String clastunum;
        /**
         * 平均学分绩点专业排名
         */
        private String gpaspclrank;
        /**
         * 平均学分绩点专业排名百分比
         */
        private String gpaspclrankrate;
        /**
         * 专业人数
         */
        private String spclstunum;
        /**
         * 专业平均学分绩点最高
         */
        private String gpaspclmax;
        /**
         * 专业平均学分绩点均值
         */
        private String gpaspclavg;
        /**
         * 专业平均成绩
         */
        private String scorespclavg;
        /**
         * 年级学院平均学分绩点最高
         */
        private String gpadepmax;
        /**
         * 年级学院平均学分绩点均值
         */
        private String gpadepavg;
        /**
         * 年级学院平均学分绩点排名
         */
        private String gpadeprank;
        /**
         * 年级学院平均学分绩点排名百分比
         */
        private String gpadeprankrate;
        /**
         * 年级学院人数
         */
        private String depstunum;
        /**
         * 平均学分绩点年级排名
         */
        private String gpagraderank;
        /**
         * 年级人数
         */
        private String gradestunum;
        /**
         * 平均学分绩点连续下降学期
         */
        private String gpadeclinetermnum;
        /**
         * 学业预警等级
         */
        private String spmwarnlevelid;
        /**
         * 学业预警等级名称
         */
        private String spmwarnlevelname;
        /**
         * 学业预警说明
         */
        private String spmwarnnotes;
        /**
         * 学业等级
         */
        private String spmlevelid;
        /**
         * 学业等级名称
         */
        private String spmlevelname;
        /**
         * 应必修学分(总计)
         */
        private Integer crdtreqeddue;
        /**
         * 应必修学分(必修课)
         */
        private Integer crdtreqedcourdue;
        /**
         * 应限选学分
         */
        private Integer crdtlmtddue;
        /**
         * 应任选学分
         */
        private Integer crdtoptldue;
        /**
         * 应修毕业设计学分
         */
        private Integer crdtreqedprctdue;
        /**
         * 应修学分总计
         */
        private Integer crdttotaldue;
        /**
         * 不及格课程学分
         */
        private Integer crdtfail;
        /**
         * 已选课程总学分
         */
        private String crdtseled;
        /**
         * 不及格学分已选占比
         */
        private String crdtfailrate;
        /**
         * 必修学分进度
         */
        private String crdtreqedrate;
        /**
         * 限选学分进度
         */
        private String crdtlmtdrate;
        /**
         * 任选学分进度
         */
        private String crdtoptlrate;
        /**
         * 总学分进度
         */
        private String crdtobtnrate;
        /**
         * 学年年级
         */
        private Integer academicgradeno;
        /**
         * 毕业预警等级
         */
        private Integer elgwarnlevelid;
        /**
         * 毕业预警名称
         */
        private String elgwarnlevelname;
        /**
         * 毕业预警说明
         */
        private String elgwarnnotes;
        /**
         * 操作日期
         */
        private LocalDateTime operatedate;
        /**
         * 必修学分已选(总计)
         */
        private String crdtreqedseled;
        /**
         * 必修学分已选(必修课)
         */
        private String crdtreqedcourseled;
        /**
         * 限选学分已选
         */
        private String crdtlmtdseled;
        /**
         * 任选学分已选
         */
        private String crdtoptlseled;
        /**
         * 毕设学分已选
         */
        private String crdtreqedprctseled;
        /**
         * 必修学分差额(总计)
         */
        private String crdtreqeddf;
        /**
         * 必修学分差额(必修课)
         */
        private String crdtreqedcourdf;
        /**
         * 限选学分差额
         */
        private String crdtlmtddf;
        /**
         * 任选学分差额
         */
        private String crdtoptldf;
        /**
         * 毕设学分差额
         */
        private String crdtreqedprctdf;
        /**
         * 总学分差额
         */
        private String crdtdf;
    }

    @Override
    public String toString() {
        return Json.toJsonString(this);
    }
}
